/**
* @auther Yuxin Ma
* @module models/community-query-model
* @exports CommunityQuery
*/
'use strict';
var $ = require('jquery');
var _ = require('underscore');
var Backbone = require('backbone');
Backbone.$ = $;
//require('backbone-relational');
var Node = require('./node-model');
var NodeCollection = require('../collections/node-collection');
var Filter = require('./query-filter');
var FilterCollection = require('../collections/filter-collection');
var Graph = require('./graph-model');
var CommunitySet = require('./community-set');
var CommunityQuery = Backbone.Model.extend( /** @lends models/CommunityQuery.prototype */ {
/**
* 社团查询。
* @augments Backbone.Model
* @constructs
*/
urlRoot: '/query/comm',
defaults: {
edgeFilters: new FilterCollection(),
edgeCondition: 'and',
vertexFilters: new FilterCollection(),
vertexCondition: 'and',
edgeLabels: [],
vertexLabels: [],
/**
* 社团元素的集合。查询发送前为null。
* @type {?CommunitySet}
*/
components: null
},
initialize: function() {
/*
* TODO: 2015.11.16 先用方舟生成的前端数据填充。等后端完成后修改。
*/
},
/**
* 加载前端数据
* TODO: 2015.11.16 后端完成后删除。
* @param {object} data - 前端数据所需的参数
* @param {options} options
*/
parse: function(data, options) {
if (data.DEBUG_COMM_FRONTEND === true) {
this.set('DEBUG_COMM_FRONTEND', true);
}
},
/**
* 来自https://github.com/jashkenas/backbone/issues/483的最后一段,解决嵌套Model和Collection的toJSON问题。
* @returns {*}
*/
toJSON: function() {
if (this._isSerializing) {
return this.id || this.cid;
}
this._isSerializing = true;
var json = _.clone(this.attributes);
_.each(json, function(value, name) {
_.isFunction((value || "").toJSON) && (json[name] = value.toJSON());
});
this._isSerializing = false;
return json;
}
});